ggplot2: Basics

Bild von Allison Horst.

ggplot2: Das Paket


ggplot2 gehört zum tidyverse

# install.packages("tidyverse")
library(tidyverse)


… kann aber natürlich auch seperat geladen werden:

# install.packages("ggplot2")
library(ggplot2)

Erste Schritte.

Foto von Omar Lopez auf Unsplash

The Big picture

Komponenten

  1. Daten.
  2. Aesthetic mapping zwischen Daten und visuellen Eigenschaften.
  3. [Layer(s)] zum rendern der Daten.

Die Daten

Wir nutzen Daten von Gapminder.
Gapminder sammelt diverse Indikatoren über viele Jahre aus allen Ländern weltweit, z.B. Lebenserwartung, GDP, CO2-Verbrauch und viele mehr.
Bekannt sind vor allem die Bubble-Plots.


Zuerst schauen wir uns nur eins der Jahre genauer an:

gapminder_dat <- gapminder_dat_full %>% 
  filter(time == "2020")

Einen ggplot bauen

Start: ggplot()

Daten

ggplot(data = gapminder_dat)

Aesthetic mapping

Um diese leere Leinwand zu befüllen, müssen wir die Daten mit den benötigten visuellen Eigenschaften verknüpfen:

mapping = aes()

Je nach Plot-Art sind verschiedene visuelle Eigenschaften möglich. Wichtig ist für uns jetzt erst einmal die Position, also x - und y-Achsen.
Es kann hier aber z.B. auch die Farbe der Punkte in Agnhängikeit von Kategorien in den Daten geändert werden.

Aesthetic mapping: Achsen

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
)

Geometric Layers

ggplots sind aus verschiedenen Layern aufgebaut, die mithilfe eines + übereinander gelegt werden.

geom_

Layers

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point()

Mehr Layers!

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point() +
  geom_smooth()

Titel/Labels

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point() +
  geom_smooth() +
  labs(
    title = "x",
    subtitle = "x",
    x = "Bevölkerung",
    y = "CO2-Ausstoß"
  )

Style deinen Plot: Themes

ggplot(
  data = gapminder_dat,
  mapping = aes(
    x = pop,
    y = co2_cons
  )
) +
  geom_point() +
  geom_smooth() +
  labs(
    title = "x",
    subtitle = "x",
    x = "Bevölkerung",
    y = "CO2-Ausstoß"
  ) +
  theme_classic()

Übung

Let’s take a deeper dive

Hier dann nochmal genauer durchgehen - Was haben wir eigentlich gemacht. Nicht zu sehr in den Basics verlieren, auch schneller tiefer reingehen (scales, coord system …)

Abspeichern

Farben

https://questionsindataviz.com/2023/12/29/what-makes-a-truly-terrible-map/